--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / Sideband.git / files / sbapp / kivymd / tools / release / git_commands.py
Displaying Raw • Download
sbapp/kivymd/tools/release/git_commands.py f8b3e3760b831745cf10d97aeae64e9c00a136a9 (f8b3e376) Text, 2.51 KB
T8b949e# Copyright (c) 2019-2022 Artem Bulgakov
T8b949e#
T8b949e# This file is distributed under the terms of the same license,
T8b949e# as the Kivy framework.
Tff7b72import T7ee787subprocess
Tff7b72def Td2a8ffcommandTb4b4b4(Te6edf3cmdTb4b4b4: Tffa657listTb4b4b4, Te6edf3capture_outputTb4b4b4: Tffa657bool Tff7b72= Tff7b72FalseTb4b4b4) Tff7b72-Tff7b72> Tffa657strTb4b4b4:
T8b949e"""Run system command."""
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffCommand: Tffd700{Te6edf3subprocessTff7b72.Td2a8fflist2cmdlineTb4b4b4(Te6edf3cmdTb4b4b4)Tffd700}Ta5d6ff"Tb4b4b4)
Tff7b72if Te6edf3capture_outputTb4b4b4:
Te6edf3out Tff7b72= Te6edf3subprocessTff7b72.Td2a8ffcheck_outputTb4b4b4(Te6edf3cmdTb4b4b4)
Te6edf3out Tff7b72= Te6edf3outTff7b72.Td2a8ffdecodeTb4b4b4(Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Te6edf3outTff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72return Te6edf3out
Tff7b72elseTb4b4b4:
Te6edf3subprocessTff7b72.Td2a8ffcheck_callTb4b4b4(Te6edf3cmdTb4b4b4)
Tff7b72return Ta5d6ff"Ta5d6ff"
Tff7b72def Td2a8ffget_previous_versionTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657strTb4b4b4:
T8b949e"""Returns latest tag in git."""
Te6edf3commandTb4b4b4(Tb4b4b4[Ta5d6ff"Ta5d6ffgitTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffcheckoutTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffmasterTa5d6ff"Tb4b4b4]Tb4b4b4)
Te6edf3old_version Tff7b72= Te6edf3commandTb4b4b4(
Tb4b4b4[Ta5d6ff"Ta5d6ffgitTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdescribeTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff--abbrev=0Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff--tagsTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3capture_outputTff7b72=Tff7b72True
Tb4b4b4)
Te6edf3old_version Tff7b72= Te6edf3old_versionTb4b4b4[Tb4b4b4:Tff7b72-T79c0ff1Tb4b4b4] T8b949e# Remove \n
Tff7b72return Te6edf3old_version
Tff7b72def Td2a8ffgit_cleanTb4b4b4(Te6edf3askTb4b4b4: Tffa657bool Tff7b72= Tff7b72TrueTb4b4b4)Tb4b4b4:
T8b949e"""Clean git repository from untracked and changed files."""
T8b949e# Check what files will be removed
Te6edf3files_to_clean Tff7b72= Te6edf3commandTb4b4b4(
Tb4b4b4[Ta5d6ff"Ta5d6ffgitTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffcleanTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff-dxTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff--forceTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff--dry-runTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3capture_outputTff7b72=Tff7b72True
Tb4b4b4)Tff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)
T8b949e# Ask before removing
Tff7b72if Te6edf3ask Tff7b72and Te6edf3files_to_cleanTb4b4b4:
Tff7b72while Tff7b72TrueTb4b4b4:
Te6edf3ans Tff7b72= Tffa657inputTb4b4b4(Ta5d6ff"Ta5d6ffDo you want to remove these files? (yes/no)Ta5d6ff"Tb4b4b4)Tff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3ans Tff7b72== Ta5d6ff"Ta5d6ffyTa5d6ff" Tff7b72or Te6edf3ans Tff7b72== Ta5d6ff"Ta5d6ffyesTa5d6ff"Tb4b4b4:
Tff7b72break
Tff7b72elif Te6edf3ans Tff7b72== Ta5d6ff"Ta5d6ffnTa5d6ff" Tff7b72or Te6edf3ans Tff7b72== Ta5d6ff"Ta5d6ffnoTa5d6ff"Tb4b4b4:
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffgit clean is required. ExitTa5d6ff"Tb4b4b4)
Te6edf3exitTb4b4b4(T79c0ff0Tb4b4b4)
T8b949e# Remove all untracked files
Te6edf3commandTb4b4b4(Tb4b4b4[Ta5d6ff"Ta5d6ffgitTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffcleanTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff-dxTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff--forceTa5d6ff"Tb4b4b4]Tb4b4b4)
Te6edf3commandTb4b4b4(Tb4b4b4[Ta5d6ff"Ta5d6ffgitTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffresetTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff--hardTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72def Td2a8ffgit_commitTb4b4b4(Te6edf3messageTb4b4b4: Tffa657strTb4b4b4, Te6edf3allow_errorTb4b4b4: Tffa657bool Tff7b72= Tff7b72FalseTb4b4b4, Te6edf3add_filesTb4b4b4: Tffa657list Tff7b72= Tff7b72NoneTb4b4b4)Tb4b4b4:
T8b949e"""Make commit."""
Te6edf3add_files Tff7b72= Te6edf3add_files Tff7b72if Te6edf3add_files Tff7b72else Tb4b4b4[Ta5d6ff"Ta5d6ff-ATa5d6ff"Tb4b4b4]
Te6edf3commandTb4b4b4(Tb4b4b4[Ta5d6ff"Ta5d6ffgitTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffaddTa5d6ff"Tb4b4b4, Tff7b72*Te6edf3add_filesTb4b4b4]Tb4b4b4)
Tff7b72tryTb4b4b4:
Te6edf3commandTb4b4b4(Tb4b4b4[Ta5d6ff"Ta5d6ffgitTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffcommitTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff--allTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff-mTa5d6ff"Tb4b4b4, Te6edf3messageTb4b4b4]Tb4b4b4)
Tff7b72except Te6edf3subprocessTff7b72.Td2a8ffCalledProcessError Tff7b72as Te6edf3eTb4b4b4:
Tff7b72if Tff7b72not Te6edf3allow_errorTb4b4b4:
Tff7b72raise Te6edf3e
Tff7b72def Td2a8ffgit_tagTb4b4b4(Te6edf3nameTb4b4b4: Tffa657strTb4b4b4)Tb4b4b4:
T8b949e"""Create tag."""
Te6edf3commandTb4b4b4(Tb4b4b4[Ta5d6ff"Ta5d6ffgitTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6fftagTa5d6ff"Tb4b4b4, Te6edf3nameTb4b4b4]Tb4b4b4)
Tff7b72def Td2a8ffgit_pushTb4b4b4(Te6edf3branches_to_pushTb4b4b4: Tffa657listTb4b4b4, Te6edf3askTb4b4b4: Tffa657bool Tff7b72= Tff7b72TrueTb4b4b4, Te6edf3pushTb4b4b4: Tffa657bool Tff7b72= Tff7b72FalseTb4b4b4)Tb4b4b4:
T8b949e"""Push all changes."""
Tff7b72if Te6edf3askTb4b4b4:
Te6edf3push Tff7b72= Tffa657inputTb4b4b4(Ta5d6ff"Ta5d6ffDo you want to push changes? (y)Ta5d6ff"Tb4b4b4) Tff7b72in Tb4b4b4(
Ta5d6ff"Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffyTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffyesTa5d6ff"Tb4b4b4,
Tb4b4b4)
Te6edf3cmd Tff7b72= Tb4b4b4[Ta5d6ff"Ta5d6ffgitTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffpushTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff--tagsTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6fforiginTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffmasterTa5d6ff"Tb4b4b4, Tff7b72*Te6edf3branches_to_pushTb4b4b4]
Tff7b72if Te6edf3pushTb4b4b4:
Te6edf3commandTb4b4b4(Te6edf3cmdTb4b4b4)
Tff7b72elseTb4b4b4:
Tffa657printTb4b4b4(
Ta5d6fffTa5d6ff"Ta5d6ffChanges are not pushed. Command for manual pushing: Tffd700{Te6edf3subprocessTff7b72.Td2a8fflist2cmdlineTb4b4b4(Te6edf3cmdTb4b4b4)Tffd700}Ta5d6ff"
Tb4b4b4)
Tff7b72if Tff7b72__name__ Tff7b72== Ta5d6ff"Ta5d6ff__main__Ta5d6ff"Tb4b4b4:
Te6edf3git_cleanTb4b4b4(Te6edf3askTff7b72=Tff7b72TrueTb4b4b4)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────